package com.qianli.cashmama.product.server.mapper;

import com.qianli.cashmama.product.server.entity.ProductEntity;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * Created by xuyang on 2017/7/18.
 */
public interface ProductMapper {

    /**
     * 查找未被删除的产品
     *
     * @param code
     * @return
     */
    ProductEntity getByCode(@Param("code") String code);

    ProductEntity getByMoneyAndPeriod(@Param("productCategory") String productCategoryCode, @Param("shelfType") Integer shelfType, @Param("principalMoney") BigDecimal principalMoney, @Param("paybackPeriodLength") Integer period);

    /**
     * 查找未被删除的产品列表
     *
     * @param productCategoryCode
     * @param shelfType
     * @return
     */
    List<ProductEntity> getListByCategoryCode(@Param("productCategory") String productCategoryCode,
                                              @Param("shelfType") Integer shelfType);

    /**
     * 获取所有产品，包括被删除和未被删除
     *
     * @return
     */
    List<ProductEntity> getAllForCache();

    List<ProductEntity> getProductByMerchantCode(@Param("merchantCode")String merchantCode);

    ProductEntity getByArrivalMoneyAndPeriod(@Param("productCategory") String productCategoryCode, @Param("shelfType") Integer shelfType, @Param("arrivalMoney") BigDecimal arrivalMoney, @Param("paybackPeriodLength") Integer period);

}
